.\"
.\" Copyright (C) 1994-2021 Altair Engineering, Inc.
.\" For more information, contact Altair at www.altair.com.
.\"
.\" This file is part of both the OpenPBS software ("OpenPBS")
.\" and the PBS Professional ("PBS Pro") software.
.\"
.\" Open Source License Information:
.\"
.\" OpenPBS is free software. You can redistribute it and/or modify it under
.\" the terms of the GNU Affero General Public License as published by the
.\" Free Software Foundation, either version 3 of the License, or (at your
.\" option) any later version.
.\"
.\" OpenPBS is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
.\" License for more details.
.\"
.\" You should have received a copy of the GNU Affero General Public License
.\" along with this program.  If not, see <http://www.gnu.org/licenses/>.
.\"
.\" Commercial License Information:
.\"
.\" PBS Pro is commercially licensed software that shares a common core with
.\" the OpenPBS software.  For a copy of the commercial license terms and
.\" conditions, go to: (http://www.pbspro.com/agreement.html) or contact the
.\" Altair Legal Department.
.\"
.\" Altair's dual-license business model allows companies, individuals, and
.\" organizations to create proprietary derivative works of OpenPBS and
.\" distribute them - whether embedded or bundled with other software -
.\" under a commercial license agreement.
.\"
.\" Use of Altair's trademarks, including but not limited to "PBS™",
.\" "OpenPBS®", "PBS Professional®", and "PBS Pro™" and Altair's logos is
.\" subject to Altair's trademark licensing policies.
.\"
.TH pbs_job_attributes 7B "4 March 2021" Local "PBS Professional"
.SH NAME
.B pbs_job_attributes 
\- attributes of PBS jobs
.SH DESCRIPTION
Each PBS job has attributes that characterize that job.

.IP "Account_Name" 8
String used for accounting purposes.  Can be used for fairshare.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String; 
can contain any character.
.br
Python type: 
.I str
.br
Default: No default

.IP accounting_id 8
Accounting ID for tracking accounting data not produced by PBS.
Readable by all.
.br
Format: 
.I String
.br
Python type: 
.I str

.IP accrue_type 8
Indicates what kind of time the job is accruing.  
.br
Readable by Manager only.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Valid values: 
.RS 11
One of 0 (initial_time), 1 (ineligible_time), 2 (eligible_time), or 3 (run_time).  
.RE
.IP
Default:
.I 2 (eligible_time)

.IP alt_id 8
For a few systems, the session ID is insufficient to track which
processes belong to the job.  Where a different identifier is
required, it is recorded in this attribute.  If set, it will also be
recorded in the end-of-job accounting record.  
.br
On Windows, holds PBS home directory.
.br
Readable by all; settable by None.
.br
Format:
.I String; 
may contain white spaces.
.br
Python type: 
.I str
.br
Default: No default

.IP "argument_list" 8
Job executable's argument list.  Shown if job is submitted with 
"-- <executable> [<argument list>]".
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I JSDL=encoded string
.RS 11
.I <jsdl-hpcpa:Argument> <1st arg> </jsdl-hpcpa:Argument>
.br
.I <jsdl-hpcpa:Argument> <2nd arg> </jsdl-hpcpa:Argument>
.br
.I <jsdl-hpcpa:Argument> <nth arg> </jsdl-hpcpa:Argument>
.RE
.IP
Example: 
.RS 11
If arguments are "A B": 
<jsdl-hpcpa:Argument>A</jsdl-hpcpa:Argument> <jsdl-hpcpa:Argument>B</jsdl-hpcpa:Argument>
.RE
.IP
Python type: 
.I str
.br
Default: No default

.IP array 8
Indicates whether this is a job array.  Set to 
.I True
if this is an array job.
.br
Can be read and set by user.  Can be read by Manager and Operator.
.br
Format: 
.I Boolean
.br
Python type: 
.I bool
.br
Default: 
.I False

.IP array_id 8
Applies only to subjobs.  Array identifier of subjob.
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP array_index 8
Applies only to subjobs.  Index number of subjob. 
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I int
.br
Default: No default

.IP array_indices_remaining 8
Applies only to job arrays.  List of indices of subjobs still queued.  
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Syntax: Range or list of ranges, e.g. 500, 552, 596-1000
.br
Python type: 
.I str
.br
Default: No default

.IP array_indices_submitted 8
Applies only to job arrays.  Complete list of indices of subjobs 
given at submission time.  
.br
Can be read and set by user.  Can be read by Manager and Operator.
.br
Format: 
.I String
.br
Syntax: 
Given as range, e.g. 1-100
.br
Python type: 
.I pbs.range
.br
Default: No default

.IP array_state_count 8
Applies only to job arrays.  Lists number of subjobs in each state. 
.br 
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I pbs.state_count
.br
Default: No default

.IP "block" 8
Specifies whether qsub will wait for the job to complete and
return the exit value of the job.  
.br
For X11 forwarding jobs, and jobs with 
.I interactive
and 
.I block
attributes set to
.I True, 
the job's exit status is not returned.
.br
When 
.I block 
is 
.I True, 
qsub waits for the job to finish.  
.br
Can be read and set by user.  Can be read by Manager and Operator.
.br
Format: 
.I Boolean
.br
Python type: 
.I int
.br
Default: 
.I False

.IP "Checkpoint" 8
Determines when the job will be checkpointed.  An 
.I $action
script is required to checkpoint the job.  See the 
.I pbs_mom(8B)
man page. 
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String, 
containing description of interval at which to checkpoint.
.br
Python type: 
.I pbs.checkpoint
.br
Valid values:  
.RS
.IP c 3
Checkpoint at intervals, measured in CPU time, set on the job's 
execution queue.  If no interval set at queue, job is not checkpointed.

.IP "c=<minutes of CPU time>" 3
Checkpoint at intervals of the specified number of minutes of job CPU
time.  This value must be greater than zero.  If the interval
specified is less than that set on the job's execution queue, the
queue's interval is used.
.br
Format:
.I Integer

.IP w 3
Checkpoint at intervals, measured in walltime, set on job's execution 
queue.  If no interval set at queue, job is not checkpointed.

.IP "w=<minutes of walltime>" 3
Checkpoint at intervals of the specified number of minutes of job 
walltime.  This value must be greater than zero.  If the interval 
specified is less that that set on job's execution queue, the 
queue's interval is used.
.br
Format: 
.I Integer
.IP n 3
No checkpointing.
.IP s 3
Checkpoint only when the server is shut down.
.IP u 3
Unset.  Defaults to behavior when 
.I interval
argument is set to 
.I s.
.LP
Default: 
.I u
.RE

.IP comment 8
Comment about job.  Informational only.
.br
Can be read by user.  Can be read and set by Operator, Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP create_resv_from_job 8
When this attribute is
.I True, 
when this job is run, immediately creates and confirms a job-specific
start reservation on the same resources as the job (including
resources inherited by the job), and places the job in the
job-specific reservation's queue.  Sets the job's
.I create_resv_from_job 
attribute to 
.I True.  
Sets the job-specific reservation's 
.I reserve_job 
attribute to the ID of the job from which the reservation was created.
The new reservation's duration and start time are the same as the
job's walltime and start time.  If the job is peer scheduled, the
job-specific reservation is created in the pulling complex.
.br
Readable and settable by all.
.br
Format: 
.I Boolean
.br
Python type:
.I bool
.br
Default: 
.I False


.IP ctime 8
Timestamp; time at which the job was created.  
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Syntax: Timestamp.  
.RS 11
Printed by 
.B qstat
in human-readable format.  Output by hooks as seconds since epoch.
.RE
.IP
Python type: 
.I int
.br
Default: No default

.IP depend 8
Specifies inter-job dependencies.
.br
No limit on number of dependencies.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<type>:<job ID>[,<job ID> ...][,<type>:<job ID>[,<job ID> ...] ...]"
.br
Must be enclosed in double quotes if it contains commas.  
.RE
.IP
Example: "before:123,456"
.br
Python type: 
.I pbs.depend
.br
Valid values: 
.RS
.IP "after:<job ID list>" 3
This job may run at any point after all jobs in 
.I job ID list 
have started execution.

.IP "afterok:<job ID list>" 3
This job may run only after all jobs in 
.I job ID list 
have terminated with no errors.

.IP "afternotok:<job ID list>" 3
This job may run only after all jobs in 
.I job ID list 
have terminated with errors.

.IP "afterany:<job ID list>"  
This job can run after all jobs in 
.I job ID list
have finished execution, with or without errors. This job will not run
if a job in the 
.I job ID list 
was deleted without ever having been run.

.IP "before:<job ID list>" 3    
Jobs in 
.I job ID list 
may start once this job has started.

.IP "beforeok:<job ID list>" 3  
Jobs in 
.I job ID list 
may start once this job terminates without errors.

.IP "beforenotok:<job ID list>" 3
If this job terminates execution with errors, jobs in 
.I job ID list 
may begin.

.IP "beforeany:<job id list>" 3 
Jobs in 
.I job ID list 
may begin execution once this job terminates execution, with or without errors.

.IP "on:<count>" 3
This job may run after 
.I count 
dependencies on other jobs have been satisfied. This type is used with one of the 
.I before types listed. 
.I Count 
is an integer greater than 
.I 0.
.RE
.IP
Default: No dependencies

.IP egroup 8
If the job is queued, this attribute is set to the
group name under which the job is to be run.  
.br
Readable by Manager only.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP eligible_time 8
The amount of wall clock wait time a job has accrued while the job
is blocked waiting for resources.  For a job currently accruing 
.I eligible_time, 
if we were to add enough of the right type of resources, the job would
start immediately.
.br
Viewable via 
.B qstat -f.
.br
Readable by job owner, Manager and Operator.  Settable by Operator or Manager.
.br
Format: 
.I Duration
.br
Python type: 
.I pbs.duration
.br
Default: 
.I Zero

.IP "Error_Path" 8
The final path name for the file containing the job's standard error
stream.  See the
.B qsub
and
.B qalter
commands.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Syntax: 
.I [<hostname>:]<path>
.br
Valid values:
.RS
.IP "<relative path>" 3
Path is relative to the current working directory of command executing
on current host.
.IP "<absolute path>" 3
Path is absolute path on current host where command is executing.
.IP "<hostname>:<relative path>" 3
Path is relative to user's home directory on specified host.
.IP "<hostname>:<absolute path>" 3
Path is absolute path on named host.
.IP "No path" 3 
Path is current working directory where qsub is executed.
.RE
.IP
Default: Default path is current working directory where qsub is run.
If the output path is specified, but does not include a
filename, the default filename is 
.I <job ID>.ER.  
If the path name is not specified, the default filename is 
.I <job name>.e<sequence number>.


.IP estimated 8
List of estimated values for job.  Used to report job's 
.I exec_vnode, start_time, 
and 
.I soft_walltime.
Can be set in a hook or via qalter, but PBS will overwrite the values.  
.br
Format: Format of reported element
.br
Syntax: 
.RS 11
.I estimated.<resource name>=<value>[, estimated.<resource name>=<value> ...]
.RE
.IP
Python type: 
.I pbs.pbs_resource
.br
Syntax:
.RS 11
estimated.<resource name>=<value>
.br
where <resource name> is a resource
.RE
.IP
Reported values: 
.RS
.IP "exec_vnode" 3
The estimated vnodes used by this job.     
.br
Readable by all; settable by Manager and Operator.
.br
Format: 
.I String
.br
Python type: 
.I pbs.exec_vnode
.br
Default: Unset   

.IP "soft_walltime" 3
The estimated soft walltime for this job.  Calculated when a job
exceeds its soft_walltime resource.
.br
Readable by all; settable by Manager.
.br
Format: 
.I Duration
.br
Python type: 
.I pbs.duration
.br
Default: Unset

.IP "start_time" 3
The estimated start time for this job.
.br
Readable by all; settable by Manager and Operator.
.br
Format: 
.I start_time 
is printed by qstat
in human-readable format; 
.I start_time 
output in hooks as seconds since epoch.
.br
Python type: 
.I int
.br
Default: Unset

.RE
.IP

.IP etime 8
Timestamp; time when job became eligible to run, i.e. was enqueued in
an execution queue and was in the "Q" state.  Reset when a job moves
queues, or is held then released.  Not affected by qaltering.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer 
.br
Syntax:
.RS 11
Printed by qstat in human-readable format.  Output in hooks as seconds since epoch.
.RE
.IP
Python type: 
.I int
.br
Default: No default

.IP euser 8
If the job is queued, this attribute is set to the
user name under which the job is to be run.  
.br
Readable by Manager only; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP "executable" 8
JSDL-encoded listing of job's executable.  
Shown if job is submitted with "-- <executable> [<arg list>]".
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I JSDL-encoded string
.br
Syntax: <jsdl-hpcpa:Executable> <name of executable> 
.br
Example: 
.RS 11
If the executable is ping, the string
is <jsdl-hpcpa:Executable>ping</jsdl-hpcpa:Executable>
.RE
.IP
Python type: 
.I str
.br
Default: No default

.IP "Execution_Time" 8
Timestamp; time after which the job may execute.  Before this time,
the job remains queued in the (W)ait state.  Can be set when stage-in
fails and PBS moves job start time out 30 minutes to allow user to fix
problem.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I Datetime
.br
Syntax:
.I [[CCwYY]MMDDhhmm[.ss]
.br
Python type: 
.I int
.br
Default: Unset (no delay)  

.IP exec_host 8
If the job is running, this is set to the name of the host or hosts on which
the job is executing.  
.br
Can be read by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax:
.RS 11
.I <hostname>/N[*C][+...], 
.br
where 
.I N 
is task slot number, starting with 0,
on that vnode, and 
.I C 
is the number of CPUs allocated to the job.
.I *C 
does not appear if 
.I C 
has a value of 
.I 1.
.RE
.IP
Python type: 
.I pbs.exec_host
.br
Default: No default

.IP exec_vnode 8
List of chunks for the job.  Each chunk shows the name of the vnode(s)
from which it is taken, along with the host-level, consumable resources 
allocated from that vnode, and any AOE provisioned on this vnode for this job.  
.br
If a vnode is allocated to the job but no resources 
from the vnode are used by the job, the vnode
name appears alone.  
.br
If a chunk is split across vnodes, the name of 
each vnode and its resources appear inside one pair of parentheses, 
joined with a plus sign ("+").
.br
Can be read by user.  Can be read and set by Manager, Operator.
.br
Format: 
.I String
.br
Syntax: 
.RS 11 
Each chunk is enclosed in parentheses, and
chunks are connected by plus signs.  
.RE
.IP
Example: 
.RS 11
For a job which requested two chunks
that were satisfied by resources from three vnodes,
.I exec_vnode 
is
.br
(vnodeA:ncpus=N:mem=X)+(vnodeB:ncpus=P:mem=Y+vnodeC:mem=Z).
.br
For a job which requested one chunk and exclusive use of a 2-vnode host,
where the chunk was satisfied by resources from one vnode,
.I exec_vnode 
is
.br
(vnodeA:ncpus=N:mem=X)+(vnodeB).
.RE
.IP
Python type: 
.I pbs.exec_vnode
.br
Default: No default

.IP Exit_status 8
Exit status of job.  Set to zero for successful execution.  If any
subjob of an array job has non-zero exit status, the array job has
non-zero exit status.  
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP "forward_x11_cookie" 8
Contains the X authorization cookie.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type:
.I int
.br
Default: No default

.IP "forward_x11_port"  8
Contains the number of the port being listened to by the port 
forwarder on the submission host.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP "group_list" 8
A list of group names used to determine the group under which the job
runs. When a job runs, the server selects a group name from the list
according to the following ordered set of rules:
.RS
.IP "1." 3 
Select the group name for which the associated host name matches the
name of the server host.

.IP "2." 3 
Select the group name which has no associated host name.

.IP "3." 3 
Use the login group for the user name under which the job will be run. 
.RE
.IP
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
.I <group name>[@<hostname>] [,<group name>[@<hostname>] ...]
.br
Must be enclosed in double quotes if it contains commas.
.RE
.IP
Python type: 
.I pbs.group_list
.br
Default: No default

.IP hashname 8
No longer used.

.IP "Hold_Types" 8
The set of holds currently applied to the job.  If the set is not null, 
the job will not be scheduled for execution and is said to be in the
.I held
state.  The
.I held
state takes precedence over the
.I wait
state.  
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String, 
made up of the letters 
.I 'n', 'o', 'p', 's', 'u'
.br
Hold types:
.RS
.IP n 3
No hold
.IP o 3
Other hold
.IP p 3
Bad password
.IP s 3
System hold
.IP u 3
User hold
.RE
.IP
Python type: 
.I pbs.hold_types
.br
Default:
.I n
(no hold)
.RE

.IP "interactive" 8
Specifies whether the job is interactive.  
.br
When both this attribute and the 
.I block
attribute are 
.I True, 
no exit status is returned.  
For X11 forwarding jobs, the job's exit status is not returned.
.br
Cannot be set using a PBS directive.
.br
Job arrays cannot be interactive.
.br
Can be set, but not altered, by unprivileged user.  Can be read by Operator, Manager.
.br
Format: 
.I Boolean
.br
Python type: 
.I int
.br
Default: 
.I False

.IP "jobdir" 8
Path of the job's staging and execution directory on the 
primary execution host.  Either user's home, or private sandbox.
Depends on value of 
.I sandbox
attribute.  Viewable via 
.B qstat -f.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP "Job_Name" 8
The job name.  See the 
.B qsub
and
.B qalter
commands.   
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String 
up to 236 characters, first character must be alphabetic or numeric
.br
Python type: 
.I str
.br
Default: Base name of job script, or STDIN

.IP "Job_Owner" 8
The login name on the submitting host of the user who submitted the batch job.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP "job_state" 8
The state of the job.
.br
Readable by all.  Can be set indirectly by all.
.br
Format: 
.I Character
.br
Job states:
.RS 
.IP B 3
.I Begun.
Job arrays only.  The job array has begun execution.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_BEGUN
.IP E 3
.I Exiting.  
The job has finished, with or without errors,
and PBS is cleaning up post-execution.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_EXITING
.IP F 3
.I Finished.
Job is finished.  Job has completed execution, job failed during execution,
or job was deleted.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_FINISHED
.IP H 3
.I Held.  
The job is held. 
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_HELD
.IP M 3
.I Moved.
Job has been moved to another server. 
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_MOVED
.IP Q 3
.I Queued.  
The job resides in an execution or routing queue pending
execution or routing.  It is not in
.B held
or
.B waiting
state.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_QUEUED
.IP R 3
.I Running.  
The job is in a execution queue and is running.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_RUNNING
.IP S 3
.I Suspended.  
The job was executing and has been suspended.   
The job does not use CPU cycles or walltime.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_SUSPEND
.IP T 3
.I Transiting.  
The job is being routed or moved to a new destination.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_TRANSIT
.IP U 3
.I User suspended.  
The job was running on a workstation configured for cycle
harvesting and the keyboard/mouse is currently busy.  The job is suspended
until the workstation has been idle for a configured amount of time.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_SUSPEND_USERACTIVE
.IP W 3
.I Waiting.  
The 
.I Execution_Time
attribute contains a time in the future.  Can be set when
stage-in fails and PBS moves job start time out 
30 minutes to allow user to fix problem.
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_WAIITING
.IP X 3
.I Expired.
Subjobs only.  Subjob is finished (expired.)
.br
Python type: PBS job state constant
.I pbs.JOB_STATE_EXPIRED
.LP
.RE

.IP "Join_Path" 8
Specifies whether the job's standard error and standard output streams
are to be merged and placed in the file specified in the 
.I Output_Path
job attribute.
.br
When set to 
.I True, 
the job's standard error and standard output streams are merged.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Behavior:
.RS
.IP eo 3
Standard output and standard error are merged, intermixed, into a 
single stream, which becomes standard error.
.IP oe 3
Standard output and standard error are merged, intermixed, into a single stream, which becomes standard output.
.IP n 3
Standard output and standard error are not merged.
.RE
.IP
Python type: 
.I pbs.join_path
.br
Default: 
.I False

.IP "Keep_Files" 8
Specifies whether the standard output and/or standard error streams
are retained on the execution host in the job's staging and execution
directory after the job has executed.  Otherwise these files are
returned to the submission host.  
.I Keep_Files 
overrides the 
.I Output_Path
and 
.I Error_Path 
attributes.
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Python type:
.I pbs.keep_files
.br
Valid values: Can be one of the following:
.RS
.IP o 3
The standard output stream is retained.  The filename is:
.I <job name>.o<sequence number>
.IP e 3
The standard error stream is  retained.  The filename is: 
.I <job name>.e<sequence number>
.IP "eo, oe" 3
Both standard output and standard error streams are retained.
.IP d 3
Output and error are written directly to their final destination
.IP n 3
Neither stream is retained.  Files are returned to submission host.
.RE
.IP 
Default: 
.I n
.RS 11
(neither stream is retained, and files are returned to submission host.)
.RE

.IP "Mail_Points" 8
Specifies state changes for which the server sends mail about the job.
.br
Can be read and set by user, Operator, Manager.
.br
Format:
.I String
.br
Python type: 
.I pbs.mail_points
.br
Valid values: Combination of
.I a, b, 
and
.I e, 
with optional 
.I j, 
or 
.I n
by itself.
.RS
.IP a 3
Mail is sent when job is aborted
.IP b 3
Mail is sent at beginning of job
.IP e 3
Mail is sent when job ends
.IP j 3
Mail is sent for subjobs.  Must be combined with one or more of
.I a, b, 
and 
.I e
options.
.IP n 3
No mail is sent.  Cannot be combined with other options.
.RE
.IP
Default: 
.I a

.IP "Mail_Users" 8
The set of users to whom mail is sent when the job makes state changes
specified in the 
.I Mail_Points
job attribute.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: "<username>@<hostname>[,<username>@<hostname>]"
.br
Python type: 
.I pbs.email_list
.br
Default: Job owner only

.IP "max_run_subjobs" 8
Sets a limit on the number of subjobs that can be running at one time.
Can be set using 
.B qsub -J <range> [%<max subjobs>] 
or 
.B qalter -Wmax_run_subjobs=<new value> <job ID>.

.IP mtime 8
Timestamp; the time that the job was last modified, changed state, or changed locations.
.br
Format: 
.I Integer.
.br
Syntax: Timestamp.  
.RS 11
Printed by qstat in human-readable format; output in hooks 
as seconds since epoch.
.RE
.IP
Python type: 
.I int
.br
Default: No default

.IP "no_stdio_sockets" 8
.B Not used.

.IP "Output_Path" 8
The final path name for the file containing the job's standard output
stream.  See the
.B qsub
and
.B qalter
commands.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Syntax: 
.I [<hostname>:]<path>
.br
Valid values:
.RS
.IP "<relative path>" 3
Path is relative to the current working directory of command executing
on current host.
.IP "<absolute path>" 3
Path is absolute path on current host where command is executing.
.IP "<hostname>:<relative path>" 3
Path is relative to user's home directory on specified host.
.IP "<hostname>:<absolute path>" 3
Path is absolute path on named host.
.IP "No path" 3 
Path is current working directory where qsub is executed.
.RE
.IP
Default: 
.RS 11
Default path is current working directory where qsub is run.
.br
If the output path is specified, but does not include a
filename, the default filename is 
.I <job ID>.OU.  
.br
If the path name is not specified, the default filename is 
.I <job name>.o<sequence number>.
.RE

.IP "pcap_accelerator" 8
Power attribute.  Power cap for an accleerator.  Corresponds to Cray 
.I capmc set_power_cap --accel
setting.  See 
.I capmc
documentation.
.br
Readable and settable by all.
.br
Format: 
.I Integer
.br
Units: 
.I Watts
.br
Python type: 
.I int
.br
Default: Unset

.IP "pcap_node" 8
Power attribute.  Power cap for a node.  Corresponds to Cray 
.I capmc set_power_cap --node
setting.  See 
.I capmc
documentation.
.br
Readable and settable by all.
.br
Format: 
.I Integer
.br
Units: 
.I Watts
.br
Python type: 
.I int
.br
Default: Unset

.IP "pgov" 8
Power attribute.  Cray ALPS reservation setting for CPU throttling
corresponding to 
.I p-governor.
See BASIL 1.4 documentation.  We do not recommend using this attribute.
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: Unset

.IP "Priority" 8
The scheduling priority for the job.  Higher value indicates higher priority.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I Integer
.br
Syntax: 
.I [+|-]nnnnn
.br
Valid values: [-1024, +1023] inclusive
.br
Python type: 
.I int
.br
Default: Unset

.IP "project" 8
The job's project. A project is a way to tag jobs.  Each job can belong
to at most one project.
.br
Readable and settable by user, Operator, Manager.
.br
Format: 
.I String
.RS 11
Can contain any characters except for the following:
Slash ("/"), left bracket ("["), right bracket ("]"), double quote ("""), 
semicolon (";"), colon (":"), vertical bar ("|"), left angle bracket ("<"), 
right angle bracket (">"), plus ("+"), comma (","), question mark ("?"), 
and asterisk ("*").
.RE
.IP
Python type: 
.I str
.br
Default: "_pbs_project_default"

.IP "pset" 8
.B Deprecated.  
Name of the placement set used by the job.  
.br
Can be read by user, Operator.  Can be read and set by Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP "pstate" 8
Power attribute.  Cray ALPS reservation setting for CPU frequency
corresponding to 
.I p-state.
See BASIL 1.4 documentation.  
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Units:
.I Hertz
.br
Python type: 
.I str
.br
Default: Unset

.IP qtime 8
Timestamp; the time that the job entered the current queue.
.br
Readable by all; settable only by PBS.
.br
Format: 
.I Integer
.br
Syntax: Timestamp.  
.RS 11
Printed by qstat in human-readable format; output in hooks 
as seconds since epoch.
.RE
.IP
Python type: 
.I int
.br
Default: No default

.IP queue 8
The name of the queue in which the job currently resides.
.br
Readable by all; settable only by PBS.
.br
Format: 
.I String
.br
Python type: 
.I pbs.queue
.br
Default: No default

.IP queue_rank 8
A number indicating the job's position within the
queue.  Only used internally by PBS.  
.br
Readable by Manager only.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP queue_type 8
The type of queue in which the job is currently residing.  
.br
Readable by Manager only.
.br
Format: 
.I Character
.br
Valid values: One of 
.I E
or 
.I R
.RS
.IP E 3
Execution queue
.br
Python type: 
.RS 3
PBS job state constant
.I pbs.QUEUE_TYPE_EXECUTION
.RE
.IP R 3
Routing queue
.br
Python type: 
.RS 3
PBS job state constant
.I pbs.QUEUE_TYPE_EXECUTION
.RE
.RE
.IP
Default: No default

.IP "release_nodes_on_stageout" 8
Controls whether job vnodes are released when stageout begins.
.br
Cannot be used with vnodes tied to Cray X* series systems.
.br
When cgroups is enabled and this is used with some but not all vnodes
from one MoM, resources on those vnodes that are part of a cgroup are
not released until the entire cgroup is released.
.br
The job's 
.I stageout 
attribute must be set for the
.I release_nodes_on_stageout 
attribute to take effect.
.br
When set to 
.I True, 
all of the job's vnodes not on the primary execution
host are released when stageout begins.  
.br
When set to 
.I False,
job's vnodes are released when the job finishes and MoM cleans up the job.
.br
Readable and settable by all.
.br
Format: 
.I Boolean
.br
Python type:
.I bool
.br
Default:
.I False

.IP "Remove_Files" 8
Specifies whether standard output and/or standard error files are 
automatically removed upon job completion.
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Python type:
.I str
.br
Valid values: "e", "o", "eo", "oe", or unset
.RS
.IP e 3
Standard error is removed upon job completion.
.IP o 3
Standard output is removed upon job completion.
.IP "eo, oe" 3
Standard output and standard error are removed upon job completion.
.IP unset 3
Neither is removed.
.RE
.IP
Default: Unset

.IP "Rerunable" 8
Specifies whether the job can be rerun.  Does not affect how a job is
treated if the job could not begin execution.  
.br
Job arrays are required to be rerunnable and are rerunnable by
default.
.br
Readable and settable by all.
.br
Format: 
.I Character
.br
Syntax: One of 
.I y
or 
.I n
.br
Python type: 
.I bool
.br
Default: y (job is rerunnable)

.IP "Resource_List" 8
The list of resources required by the job. List is a set of 
.I <resource name>=<value> 
strings. The meaning of name and value is dependent upon
defined resources. Each value establishes the limit of usage of that
resource. If not set, the value for a resource may be determined by a
queue or server default established by the administrator. 
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
.I Resource_List.<resource name>=<value>[, Resource_List.<resource name>=<value>, ...]
.RE
.IP
Python type: 
.I pbs.pbs_resource
.br
Syntax:
.RS 11
Resource_List["<resource name>"]=<value>
.br
where <resource name> is any built-in or custom resource
.RE
.IP
Default: No default

.IP "resources_released" 8
Listed by vnode, consumable resources that were released when the job
was suspended.  Populated only when 
.I restrict_res_to_release_on_suspend
server attribute is set.  
.br
Readable by all.  Set by server.
.br
Format: 
.I String 
.br
Syntax: 
.RS 11
.I (<vnode>:<resource name>=<value>:
.I <resource name>=<value>:...)+
.I (<vnode>:<resource name>=<value>:...)
.RE
.IP
Python type:
.I str
.br
Default: No default

.IP "resource_release_list" 8
Sum of each consumable resource requested by the job that was released
when the job was suspended.  Populated only when
.I restrict_res_to_release_on_suspend 
server attribute is set. 
.br
Readable by Manager and Operator.  Set by server.
.br
Format: 
.I String 
.br
Syntax: 
.RS 11
.I resource_released_list.<resource name>=<value>,
.I resource_released_list.<resource name>=<value>, ...
.RE
.IP
Python type: 
.I pbs.pbs_resource
.br
Default: No default

.IP "resources_used" 8
The amount of each resource used by the job.  
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
List of 
.I resources_used.<resource name>=<value>,resources_used.<resource name>=<value>
pairs.  
.RE
.IP
Example: resources_used.mem=2mb
.br
Python type: 
.I pbs.pbs_resource
.br
Syntax:
.RS 11
resources_used["<resource name>"]=<value> 
.br
where <resource name> is any built-in or custom resource
.RE
.IP 
Default: No default

.IP run_count 8
The number of times the server thinks the job has been executed.  
.br
The
.I run_count
attribute starts at zero.  Job is held after 21 tries.  
.br
Can be set via qsub, qalter, or a hook.
.br
Can be read and set by Manager and Operator.
.br
Format: 
.I Integer;
must be greater than or equal to zero.
.br
Python type: 
.I int
.br
Default: 
.I Zero

.IP "run_version" 8
Used internally by PBS to track the instance of the job.  
.br
Set by PBS.  Visible to Manager only.  
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP "sandbox" 8
Specifies type of location PBS uses for job staging and execution.
.br
User-settable via 
.B qsub -Wsandbox=<value>
or via a PBS directive.
.br
See the $jobdir_root MoM configuration option in 
.B pbs_mom.8B. 
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Valid values: 
.I PRIVATE, HOME, 
unset
.br
.RS
.IP PRIVATE 3
When set to PRIVATE, PBS creates job-specific staging and
execution directories under the directory specified in 
the 
.I $jobdir_root 
MoM configuration option.
.IP "HOME or unset" 3
PBS uses the job owner's home directory for staging and execution.
.RE
.IP
Python type: 
.I str 
.br
Default: Unset

.IP schedselect  8
The union of the select specification of the job, and the queue and 
server defaults for resources in a chunk.  
.br
Can be read by PBS Manager only.
.br
Format: 
.I String
.br
Python type: 
.I pbs.select
.br
Default: No default

.IP sched_hint 8
.B No longer used.

.IP security_context 8
Contains security context of job submitter.  Set by PBS to the
security context of the job submitter at the time of job
submission. If not present when a request is submitted, an error
occurs, a server message is logged, and the request is rejected.
.br
Readable by all; set by PBS.
.br
Format: 
.I String in SELinux format
.br
Default: Unset

.IP server 8
The name of the server which is currently managing the job.
When the secondary server is running during failover, shows the name
of the primary server.  After a job is moved to another server, either
via qmove or peer scheduling, shows the name of the new server.
.br
Readable by all; set by PBS.
.br
Format: 
.I String
.br
Python type: 
.I pbs.server
.br
Default: No default

.IP session_id 8
If the job is running, this is set to the session ID of the first
executing task.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP "Shell_Path_List" 8
One or more absolute paths to the program(s) to process the job's
script file.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<path>[@<hostname>][,<path>[@<hostname>]...]"
.br
Must be enclosed in double quotes if it contains commas.
.RE
.IP
Python type: 
.I pbs.path_list
.br
Default: User's login shell on execution host

.IP stagein 8
The list of files to be staged in prior to job execution.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<execution path>@<storage host>:<storage path>
[, <execution path>@<storage host>:<storage path>, ...]"
.RE
.IP
Python type: 
.I pbs.staging_list
.br
Default: No default

.IP stageout 8
The list of files to be staged out after job execution.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<execution path>@<storage host>:<storage path>
[, <execution path>@<storage host>:<storage path>, ...]"
.RE
.IP
Python type: 
.I pbs.staging_list
.br
Default: No default

.IP Stageout_status 8
Status of stageout.  If stageout succeeded, this is set to 1.  
If stageout failed, this is 
set to 0.  Displayed only if set.  
If stageout fails for any subjob of an array job, the value of 
.I Stageout_status
is zero for the array job.  Available only for finished jobs.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br
Default: No default

.IP stime 8
Timestamp; time when the job started execution.  Changes when job is restarted.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer 
.br
Syntax: Timestamp.  
.RS 11
Printed by qstat in human-readable format; output in hooks 
as seconds since epoch.
.RE
.IP
Python type: 
.I int
.br
Default: No default

.IP "Submit_arguments" 8
Job submission arguments given on the 
.B qsub
command line.  Available for all jobs.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I String
.br
Python type: 
.I str
.br
Default: No default

.IP "substate" 8
The substate of the job.  The substate is used internally by PBS.
.br
Readable by all; set by PBS.
.br
Format: 
.I Integer
.br
Python type: 
.I int
.br 
Default: No default

.IP sw_index 8
.B No longer used.

.IP "tobjob_ineligible" 8
Allows administrators to mark this job as ineligible to be a top job.
.br
When 
.I True
, this job is not eligible to be the top job.
.br
Can be read and set by Manager.
.br
Format: 
.I Boolean
.br
Python type: 
.I bool
.br
Default: 
.I False

.IP umask 8
The initial umask of the job is set to the value of this attribute when the
job is created.  This may be changed by umask commands in the shell
initialization files such as .profile or .cshrc.
.br
Can be read and set by user, Operator, Manager.
.br
Format: 
.I Decimal integer
.br
Python type: 
.I int
.br
Default: 
.I 077

.IP "User_List" 8
The list of users which determines the user name under which the job
is run on a given host.  No length limit.
.br
When a job is to be executed, the server selects a user name from the
list according to the following ordered set of rules:
.RS
.IP 1. 3 
Select the user name from the list for which the associated host name
matches the name of the server.
.IP 2. 3
Select the user name which has no associated host name; the wild card name.
.IP 3. 3 
Use the value of 
.I Job_Owner 
as the user name.
.RE
.IP
Readable and settable by all.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<username>@<hostname> [,<username>@<hostname>...]" 
.br
Must be enclosed in double quotes if it contains commas.  May be up to
256 characters in length.
.RE
.IP
Python type:
.I pbs.user_list
.br
Default: Value of 
.I Job_Owner
job attribute

.IP "Variable_List" 8
List of environment variables set in the job's execution environment.
See the qsub(1B) command.
.br
Readable and settable by all.
.br
Format: 
.I String
.br
Syntax: 
.RS 11
"<variable name>=<value> [,<variable name>=<value>...]"
.br
Must be enclosed in double quotes if it contains commas. 
.RE
.IP
Python type: 
.I pbs.pbs_resource
.br
Syntax:
.RS 11 
Variable_List["<variable name>"]=<value>
.RE
.IP
Default: No default


.SH SEE ALSO
qsub(1B), qalter(1B), qhold(1B), qrls(1B), pbs_resources(7B)
